package org.apache.lucene.index;

/**
 * Copyright 2007 The Apache Software Foundation
 * <p/>
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * <p/>
 * http://www.apache.org/licenses/LICENSE-2.0
 * <p/>
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * Convenience class for holding TermVector information.
 */
public class TermVectorEntry {
	private String field;
	private String term;
	private int frequency;
	private TermVectorOffsetInfo[] offsets;
	int[] positions;

	public TermVectorEntry() {
	}

	public TermVectorEntry(String field, String term, int frequency,
			TermVectorOffsetInfo[] offsets, int[] positions) {
		this.field = field;
		this.term = term;
		this.frequency = frequency;
		this.offsets = offsets;
		this.positions = positions;
	}

	public String getField() {
		return field;
	}

	public int getFrequency() {
		return frequency;
	}

	public TermVectorOffsetInfo[] getOffsets() {
		return offsets;
	}

	public int[] getPositions() {
		return positions;
	}

	public String getTerm() {
		return term;
	}

	// Keep package local
	void setFrequency(int frequency) {
		this.frequency = frequency;
	}

	void setOffsets(TermVectorOffsetInfo[] offsets) {
		this.offsets = offsets;
	}

	void setPositions(int[] positions) {
		this.positions = positions;
	}

	public boolean equals(Object o) {
		if (this == o)
			return true;
		if (o == null || getClass() != o.getClass())
			return false;

		TermVectorEntry that = (TermVectorEntry) o;

		if (term != null ? !term.equals(that.term) : that.term != null)
			return false;

		return true;
	}

	public int hashCode() {
		return (term != null ? term.hashCode() : 0);
	}

	public String toString() {
		return "TermVectorEntry{" + "field='" + field + '\'' + ", term='"
				+ term + '\'' + ", frequency=" + frequency + '}';
	}
}
